package ec.linde.persistencia.entidades;

// Generated 07-ago-2014 12:54:27 by Hibernate Tools 4.0.0

import static javax.persistence.GenerationType.IDENTITY;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * ProdMateriales generated by hbm2java
 */
@Entity
@Table(name = "prod_materiales", schema = "productividad")
public class ProdMateriales implements java.io.Serializable {

	private int mateId;
	private ProdConfigBasPresupues prodConfigBasPresupues;
	private String mateDescripcion;
	private String mateUnidad;
	private double mateCostoDirectUnitari;
	private Set<ProdConceptosMateriales> prodConceptosMaterialeses = new HashSet<ProdConceptosMateriales>(
			0);

	public ProdMateriales() {
	}

	public ProdMateriales(int mateId, String mateDescripcion,
			String mateUnidad, double mateCostoDirectUnitari) {
		this.mateId = mateId;
		this.mateDescripcion = mateDescripcion;
		this.mateUnidad = mateUnidad;
		this.mateCostoDirectUnitari = mateCostoDirectUnitari;
	}

	public ProdMateriales(int mateId,
			ProdConfigBasPresupues prodConfigBasPresupues,
			String mateDescripcion, String mateUnidad,
			double mateCostoDirectUnitari,
			Set<ProdConceptosMateriales> prodConceptosMaterialeses) {
		this.mateId = mateId;
		this.prodConfigBasPresupues = prodConfigBasPresupues;
		this.mateDescripcion = mateDescripcion;
		this.mateUnidad = mateUnidad;
		this.mateCostoDirectUnitari = mateCostoDirectUnitari;
		this.prodConceptosMaterialeses = prodConceptosMaterialeses;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "mate_id", unique = true, nullable = false)
	public int getMateId() {
		return this.mateId;
	}

	public void setMateId(int mateId) {
		this.mateId = mateId;
	}

	@ManyToOne//(fetch = FetchType.LAZY)
	@JoinColumn(name = "bapr_id")
	public ProdConfigBasPresupues getProdConfigBasPresupues() {
		return this.prodConfigBasPresupues;
	}

	public void setProdConfigBasPresupues(
			ProdConfigBasPresupues prodConfigBasPresupues) {
		this.prodConfigBasPresupues = prodConfigBasPresupues;
	}

	@Column(name = "mate_descripcion", nullable = false)
	public String getMateDescripcion() {
		return this.mateDescripcion;
	}

	public void setMateDescripcion(String mateDescripcion) {
		this.mateDescripcion = mateDescripcion;
	}

	@Column(name = "mate_unidad", nullable = false)
	public String getMateUnidad() {
		return this.mateUnidad;
	}

	public void setMateUnidad(String mateUnidad) {
		this.mateUnidad = mateUnidad;
	}

	@Column(name = "mate_costo_direct_unitari", nullable = false, precision = 17, scale = 17)
	public double getMateCostoDirectUnitari() {
		return this.mateCostoDirectUnitari;
	}

	public void setMateCostoDirectUnitari(double mateCostoDirectUnitari) {
		this.mateCostoDirectUnitari = mateCostoDirectUnitari;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodMateriales")
	public Set<ProdConceptosMateriales> getProdConceptosMaterialeses() {
		return this.prodConceptosMaterialeses;
	}

	public void setProdConceptosMaterialeses(
			Set<ProdConceptosMateriales> prodConceptosMaterialeses) {
		this.prodConceptosMaterialeses = prodConceptosMaterialeses;
	}

}
